// ----------------------------------
// RSDK Project: Sonic 1/Sonic 2
// Script Description: Yellow Spring Object
// Script Author: Christian Whitehead/Simon Thomley
// Unpacked by Rubberduckycooly's script unpacker
// ----------------------------------

// Aliases
private alias 16 : TYPE_YELLOWSPRING

// Function declarations
reserve function YellowSpring_DebugDraw
reserve function YellowSpring_DebugSpawn

// Static Values
public value YellowSpring_value29 = 0;

// Tables
public table YellowSpring_table19
	0, 0, 0, 0, 0, 0, 2, 2, 0, 0, 1, 2, 0, 1, 2, 3
	0, 0, 1, 2, 0, 1, 2, 3
end table

public table YellowSpring_table20
	16, 16, 16, 16, 16, 16, 14, 12, 10, 8, 6, 4, 2, 0, -2, -4
end table

public table YellowSpring_table21
	3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3
	//1, 1, 1, 1, 1, 1, 3, 3, 3, 3, 3, 3, 3, 3, 1, 1
end table


function YellowSpring_DebugDraw
	temp1 = object.direction
	temp0 = object[0].value17
	temp0 -= YellowSpring_value29
	GetTableValue(object.direction, temp0, YellowSpring_table19)
	DrawSpriteFX(temp0, FX_FLIP, object.xpos, object.ypos)
	object.direction = temp1
end function


function YellowSpring_DebugSpawn
	temp0 = object[0].value17
	temp0 -= YellowSpring_value29
	CreateTempObject(TypeName[Yellow Spring], temp0, object.xpos, object.ypos)
end function


event ObjectMain
	temp1 = object.propertyValue
	temp1 &= 127
	temp2 = 0
	foreach (GROUP_PLAYERS, currentPlayer, ACTIVE_ENTITIES)
		switch temp1
		case 0
			temp0 = object.value1
			if object[currentPlayer].gravity == GRAVITY_AIR
				temp0 = 1
			end if
			if object[currentPlayer].collisionMode > CMODE_FLOOR
				if object[currentPlayer].yvel < 0
					temp0 = 1
				end if
			end if
			if temp0 == 0
				if object.state == 1
					BoxCollisionTest(C_BOX, object.entityPos, -14, -8, 14, 8, currentPlayer, HITBOX_AUTO, HITBOX_AUTO, HITBOX_AUTO, HITBOX_AUTO)
				endif
				if object[currentPlayer].gravity == GRAVITY_AIR
					BoxCollisionTest(C_TOUCH, object.entityPos, -14, -10, 14, -6, currentPlayer, HITBOX_AUTO, HITBOX_AUTO, HITBOX_AUTO, HITBOX_AUTO)
				else
					BoxCollisionTest(C_TOUCH, object.entityPos, -14, -12, 14, -6, currentPlayer, HITBOX_AUTO, HITBOX_AUTO, HITBOX_AUTO, HITBOX_AUTO)
				end if
				if checkResult == 1
					object[currentPlayer].value10 = ANI_WALKING
					if object[currentPlayer].animation == ANI_RUNNING
						object[currentPlayer].value10 = ANI_RUNNING
					end if
					if object[currentPlayer].animation == ANI_PEELOUT
						object[currentPlayer].value10 = ANI_PEELOUT
					end if
					object.value3 = 1
					object[currentPlayer].state = PlayerObject_HandleAir
					object[currentPlayer].tileCollisions = 1
					object[currentPlayer].gravity = GRAVITY_AIR
					object[currentPlayer].speed = object[currentPlayer].xvel
					object[currentPlayer].yvel = -0xA0000
					if object.propertyValue >= 128
						object[currentPlayer].animation = ANI_TWIRL
						object[currentPlayer].prevAnimation = ANI_TWIRL
						object[currentPlayer].frame = 0
						object[currentPlayer].animationSpeed = 40
					else
						object[currentPlayer].animation = ANI_BOUNCING
					end if
					object[currentPlayer].value1 = 0
					PlaySfx(SfxName[Spring], 0)
				end if
			else
				if object[currentPlayer].yvel >= 0
					if object.state == 1
						BoxCollisionTest(C_PLATFORM, object.entityPos, -14, -8, 14, 8, currentPlayer, HITBOX_AUTO, HITBOX_AUTO, HITBOX_AUTO, HITBOX_AUTO)
					endif
					BoxCollisionTest(C_TOUCH, object.entityPos, -14, -10, 14, -6, currentPlayer, HITBOX_AUTO, HITBOX_AUTO, HITBOX_AUTO, HITBOX_AUTO)
					if checkResult == 1
						object[currentPlayer].value10 = ANI_WALKING
						if object[currentPlayer].animation == ANI_RUNNING
							object[currentPlayer].value10 = ANI_RUNNING
						end if
						if object[currentPlayer].animation == ANI_PEELOUT
							object[currentPlayer].value10 = ANI_PEELOUT
						end if
						object.value3 = 1
						object[currentPlayer].state = PlayerObject_HandleAir
						object[currentPlayer].tileCollisions = 1
						object[currentPlayer].gravity = GRAVITY_AIR
						object[currentPlayer].speed = object[currentPlayer].xvel
						object[currentPlayer].yvel = -0xA0000
						object[currentPlayer].yvel -= object[currentPlayer].value25
						if object.propertyValue >= 128
							object[currentPlayer].animation = ANI_TWIRL
							object[currentPlayer].prevAnimation = ANI_TWIRL
							object[currentPlayer].frame = 0
							object[currentPlayer].animationSpeed = 40
						else
							object[currentPlayer].animation = ANI_BOUNCING
						end if
						object[currentPlayer].value1 = 0
						PlaySfx(SfxName[Spring], 0)
					end if
				end if
			end if
			break
		case 1
			if object.state == 1
				BoxCollisionTest(C_BOX, object.entityPos, -8, -14, 8, 14, currentPlayer, HITBOX_AUTO, HITBOX_AUTO, HITBOX_AUTO, HITBOX_AUTO)
			endif
			if object[currentPlayer].gravity == GRAVITY_GROUND
				BoxCollisionTest(C_TOUCH, object.entityPos, 6, -14, 10, 14, currentPlayer, HITBOX_AUTO, HITBOX_AUTO, HITBOX_AUTO, HITBOX_AUTO)
				if checkResult == 1
					object.value3 = 1
					object[currentPlayer].tileCollisions = 1
					object[currentPlayer].speed = 0xA0000
					object[currentPlayer].collisionMode = CMODE_FLOOR
					object[currentPlayer].pushing = 0
					object[currentPlayer].direction = FLIP_NONE
					object[currentPlayer].controlLock = 15
					PlaySfx(SfxName[Spring], 0)
					if object[currentPlayer].state != PlayerObject_HandleRolling
						object[currentPlayer].state = PlayerObject_HandleGround
						object[currentPlayer].animation = ANI_RUNNING
					end if
				end if
			else
				if object.state == 1
					if object.value7 == 1
						BoxCollisionTest(C_TOUCH, object.entityPos, 6, -4, 11, 4, currentPlayer, HITBOX_AUTO, HITBOX_AUTO, HITBOX_AUTO, HITBOX_AUTO)
						if checkResult == 1
							object.value3 = 1
							object[currentPlayer].tileCollisions = 1
							object[currentPlayer].speed = 0xA0000
							object[currentPlayer].yvel = 0
							object[currentPlayer].collisionMode = CMODE_FLOOR
							object[currentPlayer].pushing = 0
							object[currentPlayer].direction = FLIP_NONE
							object[currentPlayer].controlLock = 15
							PlaySfx(SfxName[Spring], 0)
							if object[currentPlayer].state != PlayerObject_RollingJump
								object[currentPlayer].animation = PlayerObject_HandleAir
								if object[currentPlayer].animation != ANI_JUMPING
									object[currentPlayer].animation = ANI_RUNNING
								end if
								object.animationSpeed = object.speed
								object[currentPlayer].animationSpeed *= 80
								object[currentPlayer].animationSpeed /= 0x60000
							end if
						end if
					end if
				else
					BoxCollisionTest(C_TOUCH, object.entityPos, 6, -14, 10, 14, currentPlayer, HITBOX_AUTO, HITBOX_AUTO, HITBOX_AUTO, HITBOX_AUTO)
					if checkResult == 1
						object.value3 = 1

						object[currentPlayer].state = PlayerObject_HandleAir
						object[currentPlayer].tileCollisions = 1
						object[currentPlayer].gravity = GRAVITY_AIR
						object[currentPlayer].speed = 0xA0000
						object[currentPlayer].pushing = 0
						object[currentPlayer].direction = FLIP_NONE
						object[currentPlayer].controlLock = 15



						PlaySfx(SfxName[Spring], 0)
						//if object[currentPlayer].state != PlayerObject_HandleRolling
						//	object[currentPlayer].state = PlayerObject_HandleGround
						//	object[currentPlayer].animation = ANI_RUNNING
						//end if
					end if
				endif
			endif
			break
		case 2
			if object.state == 1
				BoxCollisionTest(C_BOX, object.entityPos, -8, -14, 8, 14, currentPlayer, HITBOX_AUTO, HITBOX_AUTO, HITBOX_AUTO, HITBOX_AUTO)
			endif
			if object[currentPlayer].gravity == GRAVITY_GROUND
				BoxCollisionTest(C_TOUCH, object.entityPos, -10, -14, -6, 14, currentPlayer, HITBOX_AUTO, HITBOX_AUTO, HITBOX_AUTO, HITBOX_AUTO)
				if checkResult == 1
					object.value3 = 1
					object[currentPlayer].tileCollisions = 1
					object[currentPlayer].speed = -0xA0000
					object[currentPlayer].collisionMode = CMODE_FLOOR
					object[currentPlayer].pushing = 0
					object[currentPlayer].direction = FLIP_X
					object[currentPlayer].controlLock = 15
					PlaySfx(SfxName[Spring], 0)
					if object[currentPlayer].state != PlayerObject_HandleRolling
						object[currentPlayer].state = PlayerObject_HandleGround
						object[currentPlayer].animation = ANI_RUNNING
					end if
				end if
			else
				if object.state == 1
					if object.value7 == 1
						BoxCollisionTest(C_TOUCH, object.entityPos, -10, -14, -6, 14, currentPlayer, HITBOX_AUTO, HITBOX_AUTO, HITBOX_AUTO, HITBOX_AUTO)
						if checkResult == 1
							object.value3 = 1
							object[currentPlayer].tileCollisions = 1
							object[currentPlayer].speed = -0xA0000
							object[currentPlayer].yvel = 0
							object[currentPlayer].collisionMode = CMODE_FLOOR
							object[currentPlayer].pushing = 0
							object[currentPlayer].direction = FLIP_X
							object[currentPlayer].controlLock = 15
							PlaySfx(SfxName[Spring], 0)
							if object[currentPlayer].state != PlayerObject_RollingJump
								object[currentPlayer].animation = PlayerObject_HandleAir
								if object[currentPlayer].animation != ANI_JUMPING
									object[currentPlayer].animation = ANI_RUNNING
								end if
								object.animationSpeed = object.speed
								FlipSign(object[currentPlayer].animationSpeed)
								object[currentPlayer].animationSpeed *= 80
								object[currentPlayer].animationSpeed /= 0x60000
							end if
						end if
					end if
				else
					BoxCollisionTest(C_TOUCH, object.entityPos, -10, -14, -6, 14, currentPlayer, HITBOX_AUTO, HITBOX_AUTO, HITBOX_AUTO, HITBOX_AUTO)
					if checkResult == 1
						object.value3 = 1

						object[currentPlayer].state = PlayerObject_HandleAir
						object[currentPlayer].tileCollisions = 1
						object[currentPlayer].gravity = GRAVITY_AIR
						object[currentPlayer].speed = -0xA0000
						object[currentPlayer].pushing = 0
						object[currentPlayer].direction = FLIP_X
						object[currentPlayer].controlLock = 15

						if object.propertyValue >= 128
							object[currentPlayer].animation = ANI_TWIRL
							object[currentPlayer].prevAnimation = ANI_TWIRL
							object[currentPlayer].frame = 0
							object[currentPlayer].animationSpeed = 40
						else
							object[currentPlayer].animation = ANI_BOUNCING
						end if

						PlaySfx(SfxName[Spring], 0)
						//if object[currentPlayer].state != PlayerObject_HandleRolling
						//	object[currentPlayer].state = PlayerObject_HandleGround
						//	object[currentPlayer].animation = ANI_RUNNING
						//end if
					end if
				end if
			endif
			break
		case 3

			if object.state == 1
				BoxCollisionTest(C_BOX, object.entityPos, -14, -8, 14, 8, currentPlayer, HITBOX_AUTO, HITBOX_AUTO, HITBOX_AUTO, HITBOX_AUTO)
			endif
			BoxCollisionTest(C_TOUCH, object.entityPos, -14, 6, 14, 10, currentPlayer, HITBOX_AUTO, HITBOX_AUTO, HITBOX_AUTO, HITBOX_AUTO)
			if checkResult == 1
				object.value3 = 1
				if object[currentPlayer].collisionMode == CMODE_ROOF
					FlipSign(object[currentPlayer].speed)
					FlipSign(object[currentPlayer].xvel)
				end if
				object[currentPlayer].state = PlayerObject_HandleAir
				object[currentPlayer].tileCollisions = 1
				object[currentPlayer].gravity = GRAVITY_AIR
				object[currentPlayer].speed = object[currentPlayer].xvel
				object[currentPlayer].yvel = 0xA0000
				object[currentPlayer].value1 = 0
				PlaySfx(SfxName[Spring], 0)
			end if
			break
		case 4
			temp0 = object[currentPlayer].xpos
			temp0 -= object.xpos
			temp0 += 0x100000
			temp0 >>= 17
			if temp0 < 0
				temp0 = 0
			end if
			if temp0 > 15
				temp0 = 15
			end if
			GetTableValue(temp1, temp0, YellowSpring_table20)
			FlipSign(temp1)
			GetTableValue(temp4, temp0, YellowSpring_table21)
			BoxCollisionTest(temp4, object.entityPos, -16, temp1, 16, 24, currentPlayer, HITBOX_AUTO, HITBOX_AUTO, HITBOX_AUTO, HITBOX_AUTO)
			if checkResult != 1
				GetBit(temp3, object.value2, temp2)
				if temp3 == 1
					temp3 = object[currentPlayer].xpos
					temp3 -= object.xpos
					temp3 >>= 16
					Abs(temp3)
					if temp3 < 16
						if object[currentPlayer].yvel >= 0
							object[currentPlayer].iypos = object[currentPlayer].collisionBottom
							FlipSign(object[currentPlayer].ypos)
							temp1 <<= 16
							object[currentPlayer].ypos += temp1
							object[currentPlayer].ypos += object.ypos
							checkResult = 1
						end if
					end if
				end if
			end if
			if checkResult == 1
				if temp0 >= 6
					object[currentPlayer].value10 = ANI_WALKING
					if object[currentPlayer].animation == ANI_RUNNING
						object[currentPlayer].value10 = ANI_RUNNING
					end if
					if object[currentPlayer].animation == ANI_PEELOUT
						object[currentPlayer].value10 = ANI_PEELOUT
					end if
					object.value3 = 1
					if object[currentPlayer].collisionMode == CMODE_ROOF
						FlipSign(object[currentPlayer].speed)
						FlipSign(object[currentPlayer].xvel)
					end if
					object[currentPlayer].state = 12
					object[currentPlayer].tileCollisions = 1
					object[currentPlayer].gravity = GRAVITY_AIR
					if object.value0 == 0
						object[currentPlayer].xvel = 0xA0000
						object[currentPlayer].yvel = -0xA0000
					else
						object[currentPlayer].xvel = object.value0
						object[currentPlayer].xvel <<= 16
						object[currentPlayer].yvel = object.value1
						object[currentPlayer].yvel *= -0x10000
					end if
					object[currentPlayer].speed = object[currentPlayer].xvel
					object[currentPlayer].yvel -= object[currentPlayer].value25
					object[currentPlayer].value1 = 0
					object[currentPlayer].direction = FLIP_NONE
					if object.propertyValue >= 128
						object[currentPlayer].animation = ANI_TWIRL
					else
						object[currentPlayer].animation = ANI_BOUNCING
					end if
					PlaySfx(SfxName[Spring], 0)
					SetBit(object.value2, temp2, 0)
				else
					SetBit(object.value2, temp2, 1)
				end if
			else
				SetBit(object.value2, temp2, 0)
			end if
			break
		case 5
			temp0 = object[currentPlayer].xpos
			temp0 -= object.xpos
			temp0 += 0x100000
			temp0 >>= 17
			if temp0 < 0
				temp0 = 0
			end if
			if temp0 > 15
				temp0 = 15
			end if
			temp0 -= 15
			Abs(temp0)
			GetTableValue(temp1, temp0, YellowSpring_table20)
			FlipSign(temp1)
			GetTableValue(temp4, temp0, YellowSpring_table21)
			BoxCollisionTest(temp4, object.entityPos, -16, temp1, 16, 32, currentPlayer, HITBOX_AUTO, HITBOX_AUTO, HITBOX_AUTO, HITBOX_AUTO)
			if checkResult != 1
				GetBit(temp3, object.value2, temp2)
				if temp3 == 1
					temp3 = object[currentPlayer].xpos
					temp3 -= object.xpos
					temp3 >>= 16
					Abs(temp3)
					if temp3 < 16
						if object[currentPlayer].yvel >= 0
							object[currentPlayer].iypos = object[currentPlayer].collisionBottom
							FlipSign(object[currentPlayer].ypos)
							temp1 <<= 16
							object[currentPlayer].ypos += temp1
							object[currentPlayer].ypos += object.ypos
							checkResult = 1
						end if
					end if
				end if
			end if
			if checkResult == 1
				if temp0 >= 6
					object[currentPlayer].value10 = ANI_WALKING
					if object[currentPlayer].animation == ANI_RUNNING
						object[currentPlayer].value10 = ANI_RUNNING
					end if
					if object[currentPlayer].animation == ANI_PEELOUT
						object[currentPlayer].value10 = ANI_PEELOUT
					end if
					object.value3 = 1
					if object[currentPlayer].collisionMode == CMODE_ROOF
						FlipSign(object[currentPlayer].speed)
						FlipSign(object[currentPlayer].xvel)
					end if
					object[currentPlayer].state = PlayerObject_HandleAir
					object[currentPlayer].tileCollisions = 1
					object[currentPlayer].gravity = GRAVITY_AIR
					object[currentPlayer].xvel = -0xA0000
					object[currentPlayer].speed = object[currentPlayer].xvel
					object[currentPlayer].yvel = -0xA0000
					object[currentPlayer].yvel -= object[currentPlayer].value25
					object[currentPlayer].value1 = 0
					object[currentPlayer].direction = FLIP_X
					if object.propertyValue >= 128
						object[currentPlayer].animation = ANI_TWIRL
					else
						object[currentPlayer].animation = ANI_BOUNCING
					end if
					PlaySfx(SfxName[Spring], 0)
					SetBit(object.value2, temp2, 0)
				else
					SetBit(object.value2, temp2, 1)
				end if
			else
				SetBit(object.value2, temp2, 0)
			end if
			break
		case 6
			temp0 = object[currentPlayer].xpos
			temp0 -= object.xpos
			temp0 += 0x100000
			temp0 >>= 17
			if temp0 < 0
				temp0 = 0
			end if
			if temp0 > 15
				temp0 = 15
			end if
			GetTableValue(temp1, temp0, YellowSpring_table20)
			//if object.state == 1
				BoxCollisionTest(C_BOX, object.entityPos, -16, -16, 32, temp1, currentPlayer, HITBOX_AUTO, HITBOX_AUTO, HITBOX_AUTO, HITBOX_AUTO)
			//else
			//	BoxCollisionTest(C_TOUCH, object.entityPos, -16, -16, 32, temp1, currentPlayer, HITBOX_AUTO, HITBOX_AUTO, HITBOX_AUTO, HITBOX_AUTO)
			//endif
			if checkResult != 4
				GetBit(temp3, object.value2, temp2)
				if temp3 == 1
					temp3 = object[currentPlayer].xpos
					temp3 -= object.xpos
					temp3 >>= 16
					Abs(temp3)
					if temp3 < 16
						if object[currentPlayer].yvel <= 0
							object[currentPlayer].iypos = object[currentPlayer].collisionTop
							FlipSign(object[currentPlayer].ypos)
							temp1 <<= 16
							object[currentPlayer].ypos += temp1
							object[currentPlayer].ypos += object.ypos
							checkResult = 1
						end if
					end if
				end if
			end if
			if checkResult == 4
				if temp0 >= 6
					object.value3 = 1
					if object[currentPlayer].collisionMode == CMODE_ROOF
						FlipSign(object[currentPlayer].speed)
						FlipSign(object[currentPlayer].xvel)
					end if
					object[currentPlayer].state = PlayerObject_HandleAir
					object[currentPlayer].tileCollisions = 1
					object[currentPlayer].gravity = GRAVITY_AIR
					object[currentPlayer].xvel = 0xA0000
					object[currentPlayer].speed = object[currentPlayer].xvel
					object[currentPlayer].yvel = 0xA0000
					object[currentPlayer].value1 = 0
					object[currentPlayer].direction = FLIP_NONE
					PlaySfx(SfxName[Spring], 0)
					SetBit(object.value2, temp2, 0)
				else
					SetBit(object.value2, temp2, 1)
				end if
			else
				SetBit(object.value2, temp2, 0)
			end if
			break
		case 7
			temp0 = object[currentPlayer].xpos
			temp0 -= object.xpos
			temp0 += 0x100000
			temp0 >>= 17
			if temp0 < 0
				temp0 = 0
			end if
			if temp0 > 15
				temp0 = 15
			end if
			temp0 -= 15
			Abs(temp0)
			GetTableValue(temp1, temp0, YellowSpring_table20)
			//if object.state == 1
				BoxCollisionTest(C_BOX, object.entityPos, -16, -16, 16, temp1, currentPlayer, HITBOX_AUTO, HITBOX_AUTO, HITBOX_AUTO, HITBOX_AUTO)
			//else
			//	BoxCollisionTest(C_PLATFORM, object.entityPos, -16, -16, 16, temp1, currentPlayer, HITBOX_AUTO, HITBOX_AUTO, HITBOX_AUTO, HITBOX_AUTO)
			//endif
			if checkResult != 4
				GetBit(temp3, object.value2, temp2)
				if temp3 == 1
					temp3 = object[currentPlayer].xpos
					temp3 -= object.xpos
					temp3 >>= 16
					Abs(temp3)
					if temp3 < 16
						if object[currentPlayer].yvel <= 0
							object[currentPlayer].iypos = object[currentPlayer].collisionTop
							FlipSign(object[currentPlayer].ypos)
							temp1 <<= 16
							object[currentPlayer].ypos += temp1
							object[currentPlayer].ypos += object.ypos
							checkResult = 1
						end if
					end if
				end if
			end if
			if checkResult == 4
				if temp0 >= 6
					object.value3 = 1
					if object[currentPlayer].collisionMode == CMODE_ROOF
						FlipSign(object[currentPlayer].speed)
						FlipSign(object[currentPlayer].xvel)
					end if
					object[currentPlayer].state = PlayerObject_HandleAir
					object[currentPlayer].tileCollisions = 1
					object[currentPlayer].gravity = GRAVITY_AIR
					object[currentPlayer].xvel = -0xA0000
					object[currentPlayer].speed = object[currentPlayer].xvel
					object[currentPlayer].yvel = 0xA0000
					object[currentPlayer].value1 = 0
					object[currentPlayer].direction = FLIP_X
					PlaySfx(SfxName[Spring], 0)
					SetBit(object.value2, temp2, 0)
				else
					SetBit(object.value2, temp2, 1)
				end if
			else
				SetBit(object.value2, temp2, 0)
			end if
			break
		end switch
		temp2++
	next
	object.frame = object.propertyValue
	object.frame &= 127
	if object.value3 != 0
		switch object.value3
		case 1
			object.frame += 8
			break
		case 2
		case 3
			object.frame += 16
			break
		case 4
		case 5
		case 6
			object.frame += 24
			break
		case 7
		case 8
		case 9
			object.frame += 16
			break
		end switch
		object.value3++
		if object.value3 >= 10
			object.value3 = 0
		end if
	end if
end event


event ObjectDraw
	GetTableValue(object.direction, object.frame, YellowSpring_table19)
	DrawSpriteFX(object.frame, FX_FLIP, object.xpos, object.ypos)
end event


event ObjectStartup
	LoadSpriteSheet("Global/Items.gif")
	SpriteFrame(-16, -8, 32, 16, 93, 1)
	SpriteFrame(-8, -16, 16, 32, 134, 97)
	SpriteFrame(-8, -16, 16, 32, 273, 116)
	SpriteFrame(-16, -8, 32, 16, 290, 133)
	SpriteFrame(-15, -18, 31, 30, 323, 157)
	SpriteFrame(-15, -18, 31, 30, 463, 157)
	SpriteFrame(-15, -18, 31, 30, 323, 157)
	SpriteFrame(-15, -18, 31, 30, 463, 157)

	SpriteFrame(-21, -3, 41, 11, 93, 18)
	SpriteFrame(-8, -21, 11, 41, 151, 97)
	SpriteFrame(-8, -21, 11, 41, 151, 97)
	SpriteFrame(-21, -3, 41, 11, 93, 18)

	SpriteFrame(-16, -19, 31, 31, 355, 156)
	SpriteFrame(-16, -19, 31, 31, 355, 156)
	SpriteFrame(-16, -19, 31, 31, 355, 156)
	SpriteFrame(-16, -19, 31, 31, 355, 156)

	SpriteFrame(-16, -12, 32, 20, 93, 30)
	SpriteFrame(-8, -16, 20, 32, 163, 97)
	SpriteFrame(-8, -16, 20, 32, 163, 97)
	SpriteFrame(-16, -12, 32, 20, 93, 30)

	SpriteFrame(-16, -21, 33, 33, 387, 154)
	SpriteFrame(-16, -21, 33, 33, 387, 154)
	SpriteFrame(-16, -21, 33, 33, 387, 154)
	SpriteFrame(-16, -21, 33, 33, 387, 154)

	SpriteFrame(-14, -23, 28, 31, 94, 51)
	SpriteFrame(-8, -14, 31, 28, 184, 97)
	SpriteFrame(-8, -14, 31, 28, 184, 97)
	SpriteFrame(-14, -23, 28, 31, 94, 51)

	SpriteFrame(-16, -27, 40, 39, 422, 148)
	SpriteFrame(-16, -27, 40, 39, 422, 148)
	SpriteFrame(-16, -27, 40, 39, 422, 148)
	SpriteFrame(-16, -27, 40, 39, 422, 148)
	temp0 = 0
	YellowSpring_value29 = DebugMode_ObjCount
	while temp0 < 8
		SetTableValue(TypeName[Yellow Spring], DebugMode_ObjCount, DebugMode_TypesTable)
		SetTableValue(YellowSpring_DebugDraw, DebugMode_ObjCount, DebugMode_DrawTable)
		SetTableValue(YellowSpring_DebugSpawn, DebugMode_ObjCount, DebugMode_SpawnTable)
		DebugMode_ObjCount++
		temp0++
	loop
end event

event RSDKDraw
	DrawSprite(0)
end event

event RSDKLoad
	LoadSpriteSheet("Global/Display.gif")
	SpriteFrame(-16, -16, 32, 32, 1, 143)
end event
